<?php

// [锁定|解锁]管理员（超级管理员）
// PUT manager.lock

namespace app\api\resource\manager;
use think\Db;
use think\Loader;

class Lock
{
    // 方法
    public $_method = ['PUT'];
    // 前置
    public $_pre    = ['adminLogin','imSuperAdmin'];
    // 描述
    public $_description = '[锁定|解锁]管理员（超级管理员）';
    // 参数
    public $_param  = [
        'id' => '管理员主键',
    ];
    // 返回
    public $_return = [
        201 => '操作成功',
        404 => '管理员不存在',
        422 => '请求参数不合法',
        500 => '服务器异常',
    ];

    public function run(&$request)
    {
        $params = $request->put();

        $validate = Loader::validate('Manager');
        if ( !$validate->scene('lock')->check($params) ) {
            $errMsg = $validate->getError();
            return [422,$errMsg];
        }

        $manager = Db::name('manager')->where('id',$params['id'])->field('password',true)->find();
        if ( is_null($manager) ) return [404,'管理员不存在'];

        $data['status'] = (1 == $manager['status']) ? 0 : 1;
        $num = Db::name('manager')->where('id',$params['id'])->update($data);

        return ($num >= 0) ? [ 201,[] ] : 500;
    }
}